[release/6.0] Query: Don't add DbParameter if already added #28348
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #27427
If a FromSql with DbParameter is reused in multiple parts of query then we need to add the DbParameter only once
Description
If same FromSql with DbParameter is reused in multiple parts of a query then we try to add DbParameter twice which throws an error.
Customer impact
Customers reusing FromSql will see an error. In case of GroupBy aggregate even if customer didn't write query in reusable way, it can still cause an error because we internally create copy.
How found
Customer reported on 6.0.2
Regression
Partially. In the scenario, where customer is reusing the query it threw error always. In case of groupby aggregate it is regression caused by us when we stopped lifting the aggregate element in all cases.
Testing
Added tests for affected scenario.
Risk
Low. Also added quirk to revert back to older behavior.